Attribute VB_Name = "动态组"
' 2024-12-21 12:40 Hearre 1.0.0 基础版本上传
' VBA 数组无法删除中间元素 需要创建新数组转入
' Dim Arr() As Variant
' 动组加值 arr, 10
' MsgBox 组转文本(arr)
' 动组加值 arr, "FDSAFDS"
' MsgBox 组转文本(arr)
' 动组减末 arr
' MsgBox 组转文本(arr)

Function 组转文本(组 As Variant) As String      ' 遍历数组 并在后面标注数组长度
    Dim result As String
    result = "" ' 初始化结果字符串
    For i = LBound(组) To UBound(组)  ' 遍历数组并构建结果字符串
        result = result & 组(i) & ", "
    Next i
    'result = Trim(result) ' 去除字符串末尾的空格
    组转文本 = result & " ( " & 动组长度(组) & " )"
End Function
Function 动组长度(组 As Variant) As Long    ' 获取数组长度
    On Error GoTo ErrorHandler      ' 开启错误识别 错误跳转标号
        动组长度 = UBound(组, 1) - LBound(组, 1) + 1    ' 获取长度
    Exit Function
ErrorHandler:
    设动组长 组, 1  ' 初始化长度
    动组长度 = 1    ' 返回长度
End Function
Sub 清空动组(数_组 As Integer) ' 清除数组
    Erase 数_组
End Sub
Sub 设动组长(组 As Variant, 长 As Long)
    ReDim Preserve 组(1 To 长) As Variant    ' 分配大小
End Sub

Sub 动组加值(组 As Variant, 值 As Variant)  ' 增加一个元素放入数组后面
    If Not (动组长度(组) = 1 And 组(1) = "") Then
        ReDim Preserve 组(1 To 动组长度(组) + 1) As Variant  ' 分配大小
    End If
    组(动组长度(组)) = 值
End Sub
Sub 动组减末(组 As Variant)     ' 减去最后一个元素
    ReDim Preserve 组(1 To 动组长度(组) - 1) As Variant  ' 分配大小
End Sub
